package net.lab1024.sa.admin.module.business.datasource.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.lab1024.sa.admin.module.business.datasource.domain.entity.DatasourceEntity;
import net.lab1024.sa.admin.module.business.datasource.domain.vo.DatasourceVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 数据源DAO
 *
 * @Author 1024创新实验室-主任:卓大
 * @Date 2024-01-01 00:00:00
 * @Wechat zhuoda1024
 * @Email lab1024@163.com
 * @Copyright <a href="https://1024lab.net">1024创新实验室</a>
 */
@Mapper
public interface DatasourceDao extends BaseMapper<DatasourceEntity> {

    /**
     * 分页查询数据源列表
     *
     * @param page 分页参数
     * @param name 数据源名称
     * @param type 数据库类型
     * @param status 状态
     * @return 数据源列表
     */
    Page<DatasourceVO> queryPage(Page<DatasourceVO> page,
                                @Param("name") String name,
                                @Param("type") String type,
                                @Param("status") Integer status);

    /**
     * 根据ID查询数据源详情
     *
     * @param id 数据源ID
     * @return 数据源详情
     */
    DatasourceVO getDetailById(@Param("id") Long id);

    /**
     * 根据名称查询数据源
     *
     * @param name 数据源名称
     * @param excludeId 排除的ID
     * @return 数据源
     */
    DatasourceEntity getByName(@Param("name") String name, @Param("excludeId") Long excludeId);
} 